const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib;
const GObject = imports.gi.GObject;
-const Gtk = imports.gi.Gtk;
const Meta = imports.gi.Meta;
const Pango = imports.gi.Pango;
const Shell = imports.gi.Shell;
if (global.stage.get_key_focus() != this.actor)
return;
- let focusSet = this.actor.navigate_focus(null, Gtk.DirectionType.TAB_FORWARD, false);
+ let focusSet = this.actor.navigate_focus(null, St.DirectionType.TAB_FORWARD, false);
if (!focusSet) {
Meta.later_add(Meta.LaterType.BEFORE_REDRAW, () => {
this._moveFocusToItems();
const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib;
const GObject = imports.gi.GObject;
-const Gtk = imports.gi.Gtk;
const Shell = imports.gi.Shell;
const Signals = imports.signals;
const Meta = imports.gi.Meta;
_selectAppInternal(id) {
if (this._items[id])
- this._items[id].actor.navigate_focus(null, Gtk.DirectionType.TAB_FORWARD, false);
+ this._items[id].actor.navigate_focus(null, St.DirectionType.TAB_FORWARD, false);
else
log('No such application ' + id);
}
let isLtr = Clutter.get_default_text_direction() == Clutter.TextDirection.LTR;
switch (event.get_key_symbol()) {
case Clutter.Down:
- direction = Gtk.DirectionType.TAB_FORWARD;
+ direction = St.DirectionType.TAB_FORWARD;
break;
case Clutter.Right:
- direction = isLtr ? Gtk.DirectionType.TAB_FORWARD :
- Gtk.DirectionType.TAB_BACKWARD;
+ direction = isLtr ? St.DirectionType.TAB_FORWARD :
+ St.DirectionType.TAB_BACKWARD;
break;
case Clutter.Up:
- direction = Gtk.DirectionType.TAB_BACKWARD;
+ direction = St.DirectionType.TAB_BACKWARD;
break;
case Clutter.Left:
- direction = isLtr ? Gtk.DirectionType.TAB_BACKWARD :
- Gtk.DirectionType.TAB_FORWARD;
+ direction = isLtr ? St.DirectionType.TAB_BACKWARD :
+ St.DirectionType.TAB_FORWARD;
break;
default:
return Clutter.EVENT_PROPAGATE;
_onKeyboardPopupMenu() {
this.popupMenu();
- this._menu.actor.navigate_focus(null, Gtk.DirectionType.TAB_FORWARD, false);
+ this._menu.actor.navigate_focus(null, St.DirectionType.TAB_FORWARD, false);
}
getId() {
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter;
-const Gtk = imports.gi.Gtk;
const Meta = imports.gi.Meta;
const Shell = imports.gi.Shell;
const St = imports.gi.St;
if (item.focusCallback)
item.focusCallback(timestamp);
else
- item.root.navigate_focus(null, Gtk.DirectionType.TAB_FORWARD, false);
+ item.root.navigate_focus(null, St.DirectionType.TAB_FORWARD, false);
}
// Sort the items into a consistent order; panel first, tray last,
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter;
-const Gtk = imports.gi.Gtk;
const Meta = imports.gi.Meta;
const Shell = imports.gi.Shell;
const St = imports.gi.St;
if (params.focus) {
params.focus.grab_key_focus();
} else if (newFocus && hadFocus) {
- if (!newFocus.navigate_focus(null, Gtk.DirectionType.TAB_FORWARD, false))
+ if (!newFocus.navigate_focus(null, St.DirectionType.TAB_FORWARD, false))
newFocus.grab_key_focus();
}
const Clutter = imports.gi.Clutter;
const GObject = imports.gi.GObject;
-const Gtk = imports.gi.Gtk;
const Meta = imports.gi.Meta;
const Shell = imports.gi.Shell;
const Signals = imports.signals;
this._translatedChildren = [];
this.emit('space-opened');
} else {
- this._translateChildren(childrenUp, Gtk.DirectionType.UP, nRowsUp);
- this._translateChildren(childrenDown, Gtk.DirectionType.DOWN, nRowsDown);
+ this._translateChildren(childrenUp, St.DirectionType.UP, nRowsUp);
+ this._translateChildren(childrenDown, St.DirectionType.DOWN, nRowsDown);
this._translatedChildren = childrenUp.concat(childrenDown);
}
}
if (translationY == 0)
return;
- if (direction == Gtk.DirectionType.UP)
+ if (direction == St.DirectionType.UP)
translationY *= -1;
for (let i = 0; i < children.length; i++) {
const GLib = imports.gi.GLib;
const Gio = imports.gi.Gio;
const GObject = imports.gi.GObject;
-const Gtk = imports.gi.Gtk;
const Meta = imports.gi.Meta;
const Pango = imports.gi.Pango;
const St = imports.gi.St;
// Focus the new tab before unmapping the old one
let tabData = this._tabs[index];
- if (!tabData.scrollView.navigate_focus(null, Gtk.DirectionType.TAB_FORWARD, false))
+ if (!tabData.scrollView.navigate_focus(null, St.DirectionType.TAB_FORWARD, false))
this.actor.grab_key_focus();
this._unselect();
const GLib = imports.gi.GLib;
const Gio = imports.gi.Gio;
const GObject = imports.gi.GObject;
-const Gtk = imports.gi.Gtk;
const Atk = imports.gi.Atk;
const Mainloop = imports.mainloop;
const Meta = imports.gi.Meta;
this._focusActorChangedId = global.stage.connect('notify::key-focus', this._focusActorChanged.bind(this));
- if (!this._actor.navigate_focus(null, Gtk.DirectionType.TAB_FORWARD, false))
+ if (!this._actor.navigate_focus(null, St.DirectionType.TAB_FORWARD, false))
this._actor.grab_key_focus();
this._focused = true;
menu.toggle();
if (menu.isOpen)
- menu.actor.navigate_focus(null, Gtk.DirectionType.TAB_FORWARD, false);
+ menu.actor.navigate_focus(null, St.DirectionType.TAB_FORWARD, false);
}
toggleAppMenu() {
const Clutter = imports.gi.Clutter;
const Gio = imports.gi.Gio;
const GObject = imports.gi.GObject;
-const Gtk = imports.gi.Gtk;
const Shell = imports.gi.Shell;
const Signals = imports.signals;
const St = imports.gi.St;
if (symbol == Clutter.KEY_Left || symbol == Clutter.KEY_Right) {
let group = global.focus_manager.get_group(this.actor);
if (group) {
- let direction = (symbol == Clutter.KEY_Left) ? Gtk.DirectionType.LEFT : Gtk.DirectionType.RIGHT;
+ let direction = (symbol == Clutter.KEY_Left) ? St.DirectionType.LEFT : St.DirectionType.RIGHT;
group.navigate_focus(this.actor, direction, false);
return Clutter.EVENT_STOP;
}
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter;
-const Gtk = imports.gi.Gtk;
const Gio = imports.gi.Gio;
const GObject = imports.gi.GObject;
const Shell = imports.gi.Shell;
let sensitive = menuItem.getSensitive();
if (!sensitive && this._activeMenuItem == menuItem) {
if (!this.actor.navigate_focus(menuItem.actor,
- Gtk.DirectionType.TAB_FORWARD,
+ St.DirectionType.TAB_FORWARD,
true))
this.actor.grab_key_focus();
} else if (sensitive && this._activeMenuItem == null) {
} else if (symbol == navKey) {
if (!this.isOpen)
this.toggle();
- this.actor.navigate_focus(null, Gtk.DirectionType.TAB_FORWARD, false);
+ this.actor.navigate_focus(null, St.DirectionType.TAB_FORWARD, false);
return Clutter.EVENT_STOP;
} else
return Clutter.EVENT_PROPAGATE;
if (symbol == Clutter.KEY_Right) {
this._setOpenState(true);
- this.menu.actor.navigate_focus(null, Gtk.DirectionType.DOWN, false);
+ this.menu.actor.navigate_focus(null, St.DirectionType.DOWN, false);
return Clutter.EVENT_STOP;
} else if (symbol == Clutter.KEY_Left && this._getOpenState()) {
this._setOpenState(false);
const GLib = imports.gi.GLib;
const GnomeDesktop = imports.gi.GnomeDesktop;
const GObject = imports.gi.GObject;
-const Gtk = imports.gi.Gtk;
const Mainloop = imports.mainloop;
const Meta = imports.gi.Meta;
const Shell = imports.gi.Shell;
if (this._dialog) {
this._dialog.actor.grab_key_focus();
- this._dialog.actor.navigate_focus(null, Gtk.DirectionType.TAB_FORWARD, false);
+ this._dialog.actor.navigate_focus(null, St.DirectionType.TAB_FORWARD, false);
}
}
const GLib = imports.gi.GLib;
const Gio = imports.gi.Gio;
const GObject = imports.gi.GObject;
-const Gtk = imports.gi.Gtk;
const Meta = imports.gi.Meta;
const Signals = imports.signals;
const Shell = imports.gi.Shell;
navigateFocus(direction) {
let rtl = this.actor.get_text_direction() == Clutter.TextDirection.RTL;
- if (direction == Gtk.DirectionType.TAB_BACKWARD ||
- direction == (rtl ? Gtk.DirectionType.RIGHT
- : Gtk.DirectionType.LEFT) ||
- direction == Gtk.DirectionType.UP) {
+ if (direction == St.DirectionType.TAB_BACKWARD ||
+ direction == (rtl ? St.DirectionType.RIGHT
+ : St.DirectionType.LEFT) ||
+ direction == St.DirectionType.UP) {
this.actor.navigate_focus(null, direction, false);
return;
}
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*-
const Clutter = imports.gi.Clutter;
-const Gtk = imports.gi.Gtk;
const St = imports.gi.St;
const BoxPointer = imports.ui.boxpointer;
super.open(animate);
this._entry.add_style_pseudo_class('focus');
- let direction = Gtk.DirectionType.TAB_FORWARD;
+ let direction = St.DirectionType.TAB_FORWARD;
if (!this.actor.navigate_focus(null, direction, false))
this.actor.grab_key_focus();
}
const Clutter = imports.gi.Clutter;
const Gio = imports.gi.Gio;
const GLib = imports.gi.GLib;
-const Gtk = imports.gi.Gtk;
const Mainloop = imports.mainloop;
const Meta = imports.gi.Meta;
const Signals = imports.signals;
var FocusTrap = GObject.registerClass(
class FocusTrap extends St.Widget {
vfunc_navigate_focus(from, direction) {
- if (direction == Gtk.DirectionType.TAB_FORWARD ||
- direction == Gtk.DirectionType.TAB_BACKWARD)
+ if (direction == St.DirectionType.TAB_FORWARD ||
+ direction == St.DirectionType.TAB_BACKWARD)
return super.vfunc_navigate_focus(from, direction);
return false;
}
_a11yFocusPage(page) {
this._showAppsButton.checked = page == this._appsPage;
- page.navigate_focus(null, Gtk.DirectionType.TAB_FORWARD, false);
+ page.navigate_focus(null, St.DirectionType.TAB_FORWARD, false);
}
_onShowAppsButtonToggled() {
this.startSearch(event);
} else if (!this._searchActive && !global.stage.key_focus) {
if (symbol == Clutter.Tab || symbol == Clutter.Down) {
- this._activePage.navigate_focus(null, Gtk.DirectionType.TAB_FORWARD, false);
+ this._activePage.navigate_focus(null, St.DirectionType.TAB_FORWARD, false);
return Clutter.EVENT_STOP;
} else if (symbol == Clutter.ISO_Left_Tab) {
- this._activePage.navigate_focus(null, Gtk.DirectionType.TAB_BACKWARD, false);
+ this._activePage.navigate_focus(null, St.DirectionType.TAB_BACKWARD, false);
return Clutter.EVENT_STOP;
}
}
let arrowNext, nextDirection;
if (entry.get_text_direction() == Clutter.TextDirection.RTL) {
arrowNext = Clutter.Left;
- nextDirection = Gtk.DirectionType.LEFT;
+ nextDirection = St.DirectionType.LEFT;
} else {
arrowNext = Clutter.Right;
- nextDirection = Gtk.DirectionType.RIGHT;
+ nextDirection = St.DirectionType.RIGHT;
}
if (symbol == Clutter.Tab) {
- this._searchResults.navigateFocus(Gtk.DirectionType.TAB_FORWARD);
+ this._searchResults.navigateFocus(St.DirectionType.TAB_FORWARD);
return Clutter.EVENT_STOP;
} else if (symbol == Clutter.ISO_Left_Tab) {
this._focusTrap.can_focus = false;
- this._searchResults.navigateFocus(Gtk.DirectionType.TAB_BACKWARD);
+ this._searchResults.navigateFocus(St.DirectionType.TAB_BACKWARD);
this._focusTrap.can_focus = true;
return Clutter.EVENT_STOP;
} else if (symbol == Clutter.Down) {
- this._searchResults.navigateFocus(Gtk.DirectionType.DOWN);
+ this._searchResults.navigateFocus(St.DirectionType.DOWN);
return Clutter.EVENT_STOP;
} else if (symbol == arrowNext && this._text.position == -1) {
this._searchResults.navigateFocus(nextDirection);
// -*- mode: js; js-indent-level: 4; indent-tabs-mode: nil -*
-const Gtk = imports.gi.Gtk;
const Meta = imports.gi.Meta;
const St = imports.gi.St;
const Shell = imports.gi.Shell;
this._sourceActor.show();
menu.open(BoxPointer.PopupAnimation.NONE);
- menu.actor.navigate_focus(null, Gtk.DirectionType.TAB_FORWARD, false);
+ menu.actor.navigate_focus(null, St.DirectionType.TAB_FORWARD, false);
menu.connect('open-state-changed', (menu_, isOpen) => {
if (isOpen)
return;
static gboolean
shell_stack_navigate_focus (StWidget *widget,
ClutterActor *from,
- GtkDirectionType direction)
+ StDirectionType direction)
{
ClutterActor *top_actor;
static gboolean
st_bin_navigate_focus (StWidget *widget,
ClutterActor *from,
- GtkDirectionType direction)
+ StDirectionType direction)
{
StBinPrivate *priv = st_bin_get_instance_private (ST_BIN (widget));
ClutterActor *bin_actor = CLUTTER_ACTOR (widget);
static gboolean
st_entry_navigate_focus (StWidget *widget,
ClutterActor *from,
- GtkDirectionType direction)
+ StDirectionType direction)
{
StEntryPrivate *priv = ST_ENTRY_PRIV (widget);
gpointer user_data)
{
StFocusManager *manager = user_data;
- GtkDirectionType direction;
+ StDirectionType direction;
gboolean wrap_around = FALSE;
ClutterActor *focused, *group;
switch (event->key.keyval)
{
case CLUTTER_KEY_Up:
- direction = GTK_DIR_UP;
+ direction = ST_DIR_UP;
break;
case CLUTTER_KEY_Down:
- direction = GTK_DIR_DOWN;
+ direction = ST_DIR_DOWN;
break;
case CLUTTER_KEY_Left:
- direction = GTK_DIR_LEFT;
+ direction = ST_DIR_LEFT;
break;
case CLUTTER_KEY_Right:
- direction = GTK_DIR_RIGHT;
+ direction = ST_DIR_RIGHT;
break;
case CLUTTER_KEY_Tab:
if (event->key.modifier_state & CLUTTER_SHIFT_MASK)
- direction = GTK_DIR_TAB_BACKWARD;
+ direction = ST_DIR_TAB_BACKWARD;
else
- direction = GTK_DIR_TAB_FORWARD;
+ direction = ST_DIR_TAB_FORWARD;
wrap_around = TRUE;
break;
case CLUTTER_KEY_ISO_Left_Tab:
- direction = GTK_DIR_TAB_BACKWARD;
+ direction = ST_DIR_TAB_BACKWARD;
wrap_around = TRUE;
break;
StThemeNode *old_theme_node);
static gboolean st_widget_real_navigate_focus (StWidget *widget,
ClutterActor *from,
- GtkDirectionType direction);
+ StDirectionType direction);
static AtkObject * st_widget_get_accessible (ClutterActor *actor);
static GList *
filter_by_position (GList *children,
ClutterActorBox *rbox,
- GtkDirectionType direction)
+ StDirectionType direction)
{
ClutterActorBox cbox;
ClutterVertex abs_vertices[4];
*/
switch (direction)
{
- case GTK_DIR_UP:
+ case ST_DIR_UP:
if (cbox.y2 > rbox->y1 + 0.1)
continue;
break;
- case GTK_DIR_DOWN:
+ case ST_DIR_DOWN:
if (cbox.y1 < rbox->y2 - 0.1)
continue;
break;
- case GTK_DIR_LEFT:
+ case ST_DIR_LEFT:
if (cbox.x2 > rbox->x1 + 0.1)
continue;
break;
- case GTK_DIR_RIGHT:
+ case ST_DIR_RIGHT:
if (cbox.x1 < rbox->x2 - 0.1)
continue;
break;
- case GTK_DIR_TAB_BACKWARD:
- case GTK_DIR_TAB_FORWARD:
+ case ST_DIR_TAB_BACKWARD:
+ case ST_DIR_TAB_FORWARD:
default:
g_return_val_if_reached (NULL);
}
static gboolean
st_widget_real_navigate_focus (StWidget *widget,
ClutterActor *from,
- GtkDirectionType direction)
+ StDirectionType direction)
{
StWidgetPrivate *priv = st_widget_get_instance_private (widget);
ClutterActor *widget_actor, *focus_child;
}
children = st_widget_get_focus_chain (widget);
- if (direction == GTK_DIR_TAB_FORWARD ||
- direction == GTK_DIR_TAB_BACKWARD)
+ if (direction == ST_DIR_TAB_FORWARD ||
+ direction == ST_DIR_TAB_BACKWARD)
{
/* At this point we know that we want to navigate focus to one of
* @widget's immediate children; the next one after @focus_child, or the
* first one if @focus_child is %NULL. (With "next" and "first" being
* determined by @direction.)
*/
- if (direction == GTK_DIR_TAB_BACKWARD)
+ if (direction == ST_DIR_TAB_BACKWARD)
children = g_list_reverse (children);
if (focus_child)
clutter_actor_box_from_vertices (&sort_box, abs_vertices);
switch (direction)
{
- case GTK_DIR_UP:
+ case ST_DIR_UP:
sort_box.y1 = sort_box.y2;
break;
- case GTK_DIR_DOWN:
+ case ST_DIR_DOWN:
sort_box.y2 = sort_box.y1;
break;
- case GTK_DIR_LEFT:
+ case ST_DIR_LEFT:
sort_box.x1 = sort_box.x2;
break;
- case GTK_DIR_RIGHT:
+ case ST_DIR_RIGHT:
sort_box.x2 = sort_box.x1;
break;
- case GTK_DIR_TAB_FORWARD:
- case GTK_DIR_TAB_BACKWARD:
+ case ST_DIR_TAB_FORWARD:
+ case ST_DIR_TAB_BACKWARD:
default:
g_warn_if_reached ();
}
gboolean
st_widget_navigate_focus (StWidget *widget,
ClutterActor *from,
- GtkDirectionType direction,
+ StDirectionType direction,
gboolean wrap_around)
{
g_return_val_if_fail (ST_IS_WIDGET (widget), FALSE);
#define ST_TYPE_WIDGET (st_widget_get_type ())
G_DECLARE_DERIVABLE_TYPE (StWidget, st_widget, ST, WIDGET, ClutterActor)
+typedef enum
+{
+ ST_DIR_TAB_FORWARD,
+ ST_DIR_TAB_BACKWARD,
+ ST_DIR_UP,
+ ST_DIR_DOWN,
+ ST_DIR_LEFT,
+ ST_DIR_RIGHT,
+} StDirectionType;
+
typedef struct _StWidgetClass StWidgetClass;
/**
*/
gboolean (* navigate_focus) (StWidget *self,
ClutterActor *from,
- GtkDirectionType direction);
+ StDirectionType direction);
GType (* get_accessible_type) (void);
GList * (* get_focus_chain) (StWidget *widget);
gboolean st_widget_get_can_focus (StWidget *widget);
gboolean st_widget_navigate_focus (StWidget *widget,
ClutterActor *from,
- GtkDirectionType direction,
+ StDirectionType direction,
gboolean wrap_around);
ClutterActor * st_widget_get_label_actor (StWidget *widget);